Computers have become highly integrated in the workforce, in the home, in mobile devices, and many other places. Computers can process massive amounts of information quickly and efficiently. Software applications designed to run on computer systems allow users to perform a wide variety of functions including business applications, schoolwork, entertainment and more. Software applications are often designed to perform specific tasks, such as word processor applications for drafting documents, or email programs for sending, receiving and organizing email.
In some cases, software applications have both managed components and native components. For example, the native components may include functions or files written in traditional, unmanaged software languages, while managed components may include functions or files written in managed software languages that run on a common language runtime. Software applications that include both native and managed components are typically referred to as “mixed-mode” applications. In some cases, mixed-mode applications may pose security issues as the code access systems in the common language runtime typically only control resources accessed from the managed code, and not from the native code.